メインコンテンツまでスキップ

ブルートフォース攻撃関連

ブルートフォース攻撃

ブルートフォース攻撃 (Brute-Force Attack)とは考えられるパターン全てを試す総当たり攻撃のことを言う。例えば、パスワードが数字が4桁(0 ~ 9)であれば、0000 \sim 9999で1万通りしか存在しないので 、プログラムを使用してこの1万通り全てを試したとしても1秒以内で全てのパターンを試すことができる。 全パターンを試すため強力な手法であると言える。

リバースブルートフォース攻撃

ブルートフォース攻撃はユーザIDを固定させ、パスワードを変更して、不正アクセスできないか試みる方法であった。リバースブルートフォース攻撃は反対でパスワードを固定させ、ユーザIDを変更させて不正アクセスできないか試みる攻撃である。 ブルートフォース攻撃はサーバ側で回数制限をつけることで容易に対策できるが、リバースブルートフォース攻撃は1つのアカウントに対して、少ない試行回数しか行わないため、検知や対策が難しくなる。

対策

ユーザ側

  • パスワードを長く・複雑にする

    パスワードが長かれば長いほど複雑であれば複雑であるほどプログラムを使用しても発見するのが困難になる。 例えば、A \sim Z, 0 \sim 9, a \sim zの合計62文字を使用したパスワードがある場合だと、62パスワードの長さ62^{パスワードの長さ}通り(8桁のパスワードを設定した場合は約218兆通り存在)のパターンが存在する。 長く・複雑にすれば、その分パターン数が増え解析に時間がかかり、プログラムを使用しても現実的な時間で発見することができなくなる。

  • 2段階認証を有効にする (サービスで提供されている場合のみ)

    2段階認証なので、例えパスワードとIDの組み合わせが看破されたとしても、ワンタイムパスワード・SMS認証 (Short Message Service)を使用した認証をクリアすることが難しい。そのため、パスワードを複雑にすることと合わせて行うことでより安全となる。

サーバ側

  • 一定回数間違えると一定時間ロックする等を行う

    総当たりで確認するため、特定のIDのパスワードを調べるために何度もパスワードを入力し、認証に失敗する。そのため、失敗回数を一定回超えた場合は一定時間ロックすることで、連続してパスワードの確認できなくさせることができる。

  • 多要素認証の提供する

    多要素認証を導入することで知識情報であるパスワード・IDが看破されても、所持情報, 生体情報を取得することが困難であるため、安全となる。

辞書攻撃

辞書攻撃(Dictionary Attack)は、攻撃者が事前に用意した単語リストを使用して、パスワードを総当たりで試す攻撃手法である。この攻撃では、短い時間で多くのパスワードを試すことが可能であり、ブルートフォース攻撃よりも効率的になる。 辞書攻撃は、人が設定するパスワードは覚えやすい何らかの単語が使われることが多く、その心理を利用して一般的な単語を使用することで、成功確率をあげる。

対策

(リバース)ブルートフォース攻撃と同じ方法で対策することが可能である。

パスワードリスト攻撃

パスワードリスト攻撃(Password List Attack)は、事前に収集されたパスワードリストを使用してパスワードを総当たりで試す攻撃手法である。 しかし、辞書攻撃と異なり、パスワードリスト攻撃では一般的な単語やパスワードではなく、事前に入手したサービスやシステムのIDとパスワードを利用する。これにより、攻撃者はより効率的に目標のアカウントに不正アクセスを試みることができる。

また、パスワードリスト攻撃を行う前にスクリーニングと呼ばれる手法を用いて使用するIDやパスワードを絞り込むことで攻撃の成功確率を上昇させることがある。

対策

ユーザ側

  • パスワードやIDを使いまわさないことでこの攻撃に対応することができる

サーバ側

  • (リバース)ブルートフォース攻撃と同じ方法で対策

  • スクリーニングを行わせない

    例えば、パスワードリセットを行う際に登録メールアドレスにリセットを行うURLを発行することがある。この時に、登録されているメールアドレスと登録されていないメールアドレスでそれぞれ「登録したメールアドレスにメールを送信しました」と「登録されたメールアドレスではありません」といった形でメッセージの内容が異なる場合、そのサービスで使用されているメールアドレスかどうか判断することができ、登録されていないメールアドレスのパスワードリストを使用しない様にすることで効率よく攻撃することが可能となる。